package cn.wolfcode.shop.cloud.common;


import ch.qos.logback.core.joran.conditional.ThenOrElseActionBase;
import com.sun.org.apache.bcel.internal.classfile.Code;
import org.springframework.util.StringUtils;

/**
 * 参数判断工具类
 */
public class AssertUtil {

    /**
     * 参数不能为空
     * @param obj
     * @param codeMsg
     */
    public static void notNull(Object obj, CodeMsg codeMsg) {
        if (obj instanceof String) {
            hasLength((String) obj, codeMsg);
            return;
        }

        if (obj == null) {
            throw new BusinessException(codeMsg);
        }
    }

    /**
     * 判断指定text是否有值
     * @param text
     * @param codeMsg
     */
    public static void hasLength(String text, CodeMsg codeMsg) {
        if (!StringUtils.hasLength(text)) {
            throw new BusinessException(codeMsg);
        }
    }

    /**
     * 判断v1 v2的值是否一致
     * @param v1
     * @param v2
     */
    public static void isEquals(String v1, String v2, CodeMsg codeMsg) {
        
        if(v1 == null || v2 == null){
            throw  new BusinessException(codeMsg);
        }
        
        if(!v1.equals(v2)){
            throw  new BusinessException(codeMsg);
        }
        
        
    }

    /**
     * 断言 isFalse 为 false,如果传入参数不为 false 则报错
     * @param isFalse
     * @param codeMsg
     */
    public static void isFalse(boolean isFalse, CodeMsg codeMsg) {
        if (isFalse) {
            throw new BusinessException(codeMsg);
        }
    }
    /**
     * 断言 isTrue 为 true,如果传入参数不为 true 则报错
     * @param isTure
     * @param codeMsg
     */
    public static void isTrue(boolean isTure, CodeMsg codeMsg) {
        if (!isTure) {
            throw new BusinessException(codeMsg);
        }
    }

    /**
     * 断言 obj 为 null,如果传入参数不为 null 则报错
     * @param obj
     * @param codeMsg
     */
    public static void isNull(Object obj, CodeMsg codeMsg) {
        if (obj != null) {
            throw new BusinessException(codeMsg);
        }
    }
}
